const { createClient } = require('redis');

// 创建 Redis 客户端
const redisClient = createClient({
  url: 'redis://localhost:6379',
  // password: '123456'  // 使用你在 redis.windows.conf 中设置的密码
});

// 连接 Redis
redisClient.connect().catch(console.error);

// 错误处理
redisClient.on('error', (err) => console.error('Redis Client Error:', err));

// 设置缓存
const setCache = async (key, value, expireTime = 3600) => {
  try {
    const stringValue = JSON.stringify(value);
    await redisClient.set(key, stringValue);
    await redisClient.expire(key, expireTime);
    return true;
  } catch (error) {
    console.error('Redis Set Error:', error);
    return false;
  }
};

// 获取缓存
const getCache = async (key) => {
  try {
    const value = await redisClient.get(key);
    return value ? JSON.parse(value) : null;
  } catch (error) {
    console.error('Redis Get Error:', error);
    return null;
  }
};

// 删除缓存
const deleteCache = async (key) => {
  try {
    await redisClient.del(key);
    return true;
  } catch (error) {
    console.error('Redis Delete Error:', error);
    return false;
  }
};

// 清除所有缓存
const clearAllCache = async () => {
  try {
    await redisClient.flushAll();
    return true;
  } catch (error) {
    console.error('Redis Clear All Error:', error);
    return false;
  }
};

module.exports = {
  redisClient,
  setCache,
  getCache,
  deleteCache,
  clearAllCache
}; 